package com.etime.shycourse.services.account.interfaces;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shycourse.dto.AccountHistoryDto;
import com.etime.shycourse.dto.AccountMyDto;
import com.etime.shycourse.dto.AccountUserDto;
import com.etime.shycourse.pojo.Settlement;
import com.etime.shycourse.wx.applets.dto.CourseDto;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 我的提成service层接口
 */
public interface AccountMyService {

    /**
     * @param settlementpay 是否支付 0-未支付  1-已支付
     * @param pageNum 第几页
     * @param pageSize 每页大小
     * @return: com.etime.shycourse.dto.AccountUserDto
     * @description: 查询用户未支付的提成总额
     **/
    Page<AccountUserDto> selectAccountSumByPage(
            Integer settlementpay,Long pageNum, Long pageSize,String token);

    /**
     * @param settlementid 结算对象id
     * @param pageNum  第几页
     * @param pageSize  每页大小
     * @return: com.etime.shycourse.config.PageMessage<com.etime.shycourse.dto.AccountMyDto>
     * @description:  查询未支付的提成明细信息
     **/
    Page<AccountMyDto> selectAccountMyByPage(
            Integer settlementid, Long pageNum, Long pageSize);

    /**
     * @param settlementuserid 结算对象id
     * @param time  支付时间
     * @param pageNum 第几页
     * @param pageSize 每页大小
     * @return: com.etime.shycourse.dto.AccountHistoryDto
     * @description: 查询历史提成总览
     **/
    Page<AccountHistoryDto> selectAccountHistory(
            Integer settlementuserid,String time ,Long pageNum,Long pageSize);

    /**
     * @return: java.util.List<java.lang.String>
     * @description: 统计所有支付时间
     **/
    List<Settlement> selectPaytime(Integer settlementuserid);

    /**
     * @param time 支付时间
     * @return: java.util.List<com.etime.shycourse.dto.AccountUserDto>
     * @description: 查询每个时间点对应的用户信息
     **/
    List<AccountUserDto> selectUserInfo(String time);

    /**
     * @param settlementid 结算对象id
     * @param time  支付时间
     * @param pageNum  第几页
     * @param pageSize 每页大小
     * @return: com.etime.shycourse.config.PageMessage<com.etime.shycourse.dto.AccountMyDto>
     * @description: 查询历史一层明细信息
     **/
    Page<AccountMyDto> selectHistroyDetails(Integer settlementid,String time, Long pageNum, Long pageSize);
}
